Indexovani tabulky

Otázka od: Zdenek

7. 10. 2002 16:58

Mel bych nekolik dotazu ohledne indexovani tabulek:

1. Nejde mi vytvorit index pomoci Table.Addindex.
Mam jednoduchou tabulku jmeno:string, cislo:numeric, na stisknuti tlacitka
nejprve smazu vsechny existujici indexy a potom chci vytvorit nove. Ale ne
pridani indexu vyskoci vyjimka a je jedno jestli je tabulka otevrena exklusivne
nebo ne.
Jak mam pridat index?

Tady prikladam kod:


procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  Table1.Active := False;
  try
    Table1.Close;
    Table1.Exclusive := True;
    Table1.Open;
    Table1.IndexDefs.Update;
    for i := Table1.IndexDefs.Count - 1 downto 0 do
      Table1.DeleteIndex(Table1.IndexDefs.Items[i].Name);

    Table1.AddIndex(\'JmCislo\',\'Jmeno;Cislo\',[]);
    Table1.AddIndex(\'CisloJm\',\'Cislo;Jmeno\',[]);
    Table1.AddIndex(\'\',\'Jmeno\',[ixPrimary, ixUnique]);
    Table1.Close;
    Table1.Exclusive := False;
    Table1.Open;
  except
    on EDatabaseError do begin
      ShowMessage(\'Could not open Table1 exclusively\');
      Table1.Close;
      Table1.Exclusive := False;
      Table1.Open;
    end;
  end;
end;


2. Jak poznam primarni index v paradoxove tabulce? V napovede pisou, ze se
primarni index neda smazat, ale mne se to dari (normalne pres DeleteIndex).

3. Lze nejak krokovat program z prostredi Delphi, kdyz je tabulka exklusivne
otevrena? Pri behu z prostredi to hazi vyjimky, ale pokud se program nepusti z
Delphi normalne bezi.